/* Copyright 2013 University of Padua, Italy
 *
 */

package it.dei.unipd.healthservice.database;

import it.dei.unipd.healthservice.resource.Reclamo;
import it.dei.unipd.healthservice.resource.Prodotto;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 * Rappresenta i dati di un reclamo.
 * 
 * @author Nichele Dany
 * @version 1.00
 */
public class ViewDettagliReclamoDatabase {

	/**
	 * Interrogazione al database.
	 */
	private static final String STATEMENT1 = "SELECT * FROM Reclamo WHERE idreclamo = ?";
	private static final String STATEMENT2 = "SELECT * FROM Ticket INNER JOIN Prodotto ON Ticket.idprodotto = Prodotto.idprodotto WHERE Ticket.idreclamo = ?";
	           

	/**
	 * Connessione al database
	 */
	private final Connection con;

	/**
	 * id reclamo
	 */
	private final int idReclamo;

	/**
	 * Risultati della ricerca
	 */
	private Reclamo reclamo;
	private ResultSet rs;

	/**
	 * cerca tutti i reclami effettuati dal cliente
	 * 
	 * @param con
	 *            connessione al database.
	 * @param idReclamo
	 *            id del reclamo
	 */
	public ViewDettagliReclamoDatabase(Connection con, int idReclamo) {
		this.con = con;
		this.idReclamo = idReclamo;
		
	}

	/**
	 * cerca il dettaglio di uno specifico reclamo
	 * 
	 * @return lista dei prodotti interessati nel reclamo.
	 * 
	 * @throws SQLException
	 *             in caso di problemi nell'accesso al database.
	 */
	public ResultSet viewDettaglioReclamo() throws SQLException {

		PreparedStatement pstmt = null;
		ResultSet rs = null;

		try {
			pstmt = con.prepareStatement(STATEMENT2);
			pstmt.setInt(1, idReclamo);

			rs = pstmt.executeQuery();

			}	 finally {

			

			
		}
		
		

		return rs;
	}
	
	/**
	 * cerca il dettaglio di uno specifico reclamo
	 * 
	 * @return uno specifico reclamo.
	 * 
	 * @throws SQLException
	 *             in caso di problemi nell'accesso al database.
	 */
	public Reclamo viewReclamo() throws SQLException {

		PreparedStatement pstmt = null;
		ResultSet rs = null;

		try {
			pstmt = con.prepareStatement(STATEMENT1);
			pstmt.setInt(1, idReclamo);

			rs = pstmt.executeQuery();

			rs.next();
				reclamo = new Reclamo(rs.getInt("idreclamo"),
						rs.getString("statoreclamo"), 
						rs.getDate("dataapertura"), 
						rs.getInt("idordine")); 
			}
		 finally {
			if (rs != null) {
				rs.close();
			}

			if (pstmt != null) {
				pstmt.close();
			}

			
		}

		return reclamo;
	}
}
